#include "JuegoClientImp.h"
#include <iostream>
#include <sstream>

JuegoClientImp::JuegoClientImp()
{
}

void JuegoClientImp::reforzarEjercitos(Jugador* jugador) {
	string mensaje = "<jugada>\n		<reforzarEjercitos></reforzarEjercitos>";
	cliente->enviarMensaje(mensaje);
}
	
void JuegoClientImp::realizarAtaque(Ataque* ataque) {
	string mensaje = "<jugada>\n";
	mensaje += "	<realizarAtaque jugador=\""+ataque->getJugadorAtacante()->toString()+"\"";
	mensaje += " territorioAtacante=\""+ataque->getTerritorioAtacante()->getNombre()+"\"";
	mensaje += " territorioEnemigo=\""+ataque->getTerritorioEnemigo()->getNombre()+"\"";
	mensaje += " cantidadDeEjercitos=\""+ataque->getCantidadDeDadosParaAtacar()+"\"/>\n";
	mensaje += "</jugada>\n";
	cliente->enviarMensaje(mensaje);
}

void JuegoClientImp::colocarEjercitos(Jugador* jugador, Territorio* territorio, unsigned int cantidadDeEjercitos) {
	string mensaje = "<jugada>\n";
	std::stringstream ejercitos;
	ejercitos<<cantidadDeEjercitos;
	mensaje += "	<colocarEjercitos jugador=\""+jugador->toString()+"\"";
	mensaje += " territorioJugador=\""+territorio->getNombre()+"\"";
	mensaje += " cantidadDeEjercitos=\""+ejercitos.str()+"\"/>\n";
	mensaje += "</jugada>\n";
	cliente->enviarMensaje(mensaje);
}

void JuegoClientImp::moverEjercitos(Jugador* jugador, Territorio* origen, Territorio* destino, unsigned int cantidadDeEjercitos) {
	string mensaje = "<jugada>\n";
	std::stringstream ejercitos;
	ejercitos<<cantidadDeEjercitos;
	mensaje += "	<moverEjercitos jugador=\""+jugador->toString()+"\"";
	mensaje += " territorioOrigen=\""+origen->getNombre()+"\"";
	mensaje += " territorioDestino=\""+destino->getTerritorioEnemigo()->getNombre()+"\"";
	mensaje += " cantidadDeEjercitos=\""+ejercitos.str()+"\"/>\n";
	mensaje += "</jugada>\n";
	cliente->enviarMensaje(mensaje);
}

void JuegoClientImp::abandonar(Jugador* jugador) {
	string mensaje = "<jugada>\n";
	mensaje += "	<abandonar jugador=\""+jugador->toString()+"\"/>";
	mensaje += "</jugada>\n";
	cliente->enviarMensaje(mensaje);
}

JuegoClientImp::~JuegoClientImp()
{
}
